using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Xml.Linq;
using Connection;
namespace Entidades
{
	public abstract class DALEstadosPostulacion
	{
		private const string __ErrorAlta = "No se pudo dar el alta (EstadosPostulacion), ";
		private const string __ErrorBaja = "No se pudo dar la baja (EstadosPostulacion), ";
		private const string __ErrorModificacion = "No se pudo hacer la modificacion (EstadosPostulacion), ";
		private const string __ErrorTraerUno = "No se pudo Traer Uno (EstadosPostulacion), ";
		private const string __ErrorTraerTodos = "No se pudo Traer Todos (EstadosPostulacion), ";
		public static void Alta(EstadosPostulacion EstadosPostulacion)
		{
			try {
				parametrosArray pa = new parametrosArray();
				pa.add("IdPostulacion", EstadosPostulacion.IdPostulacion);
				pa.add("Estado", EstadosPostulacion.Estado);
				pa.add("Fecha", EstadosPostulacion.Fecha);
				using (DataSet ds = Connection.Connection.Traer("p_EstadosPostulacion_Alta", pa)) {
					if (ds.Tables.Count > 0) {
						EstadosPostulacion.Id = int.Parse(ds.Tables[0].Rows[0][0].ToString());
					} else {
						throw new Exception(__ErrorAlta);
					}
				}
			} catch (Exception ex) {
				throw new Exception(__ErrorAlta + ex.Message);
			}
		}
		public static void Baja(int Id)
		{
			try {
				parametrosArray pa = new parametrosArray();
				pa.add("Id", Id);
				Connection.Connection.Ejecutar("p_EstadosPostulacion_Baja", pa);
			} catch (Exception ex) {
				throw new Exception(__ErrorBaja + ex.Message);
			}
		}
		public static void Modificar(EstadosPostulacion EstadosPostulacion)
		{
			try {
				parametrosArray pa = new parametrosArray();
				pa.add("Id", EstadosPostulacion.Id);
				pa.add("IdPostulacion", EstadosPostulacion.IdPostulacion);
				pa.add("Estado", EstadosPostulacion.Estado);
				pa.add("Fecha", EstadosPostulacion.Fecha);
				Connection.Connection.Ejecutar("p_EstadosPostulacion_Modificacion", pa);
			} catch (Exception ex) {
				throw new Exception(__ErrorModificacion + ex.Message);
			}
		}
		public static EstadosPostulacion traerUno(int Id)
		{
			parametrosArray pa = new parametrosArray();
			pa.add("Id", Id);
			using (DataSet ds = Connection.Connection.Traer("p_EstadosPostulacion_TraerUno", pa)) {
				if (ds.Tables.Count > 0) {
					if (ds.Tables[0].Rows.Count > 0) {
						return llenarEntidad(ds.Tables[0].Rows[0]);
					}
				}
			}
			throw new Exception(__ErrorTraerUno);
		}
		public static List<EstadosPostulacion> TraerTodos()
		{
			using (DataSet ds = Connection.Connection.Traer("p_EstadosPostulacion_TraerTodos")) {
				if (ds.Tables.Count > 0) {
					List<EstadosPostulacion> li = new List<EstadosPostulacion>();
					if (ds.Tables[0].Rows.Count > 0) {
						foreach (DataRow dr in ds.Tables[0].Rows) {
							li.Add(llenarEntidad(dr));
						}
					}
					return li;
				}
			}
			throw new Exception(__ErrorTraerTodos);
		}
		public static List<EstadosPostulacion> getAllByIdPostulacion(int IdPostulacion)
		{
			parametrosArray pa = new parametrosArray();
			pa.add("IdPostulacion", IdPostulacion);
			using (DataSet ds = Connection.Connection.Traer("p_EstadosPostulacion_getAllByIdPostulacion", pa)) {
				if (ds.Tables.Count > 0) {
					List<EstadosPostulacion> li = new List<EstadosPostulacion>();
					if (ds.Tables[0].Rows.Count > 0) {
						foreach (DataRow dr in ds.Tables[0].Rows) {
							li.Add(llenarEntidad(dr));
						}
					}
					return li;
				}
			}
			throw new Exception("ErrorgetAllByIdPostulacion");
		}
		private static EstadosPostulacion llenarEntidad(DataRow dr)
		{
			EstadosPostulacion EstadosPostulacion = new EstadosPostulacion();
			if (dr.Table.Columns.Contains("Id")) {
				if (!object.ReferenceEquals(dr["Id"], DBNull.Value)) {
					EstadosPostulacion.Id = int.Parse(dr["Id"].ToString());
				}
			}
			if (dr.Table.Columns.Contains("IdPostulacion")) {
				if (!object.ReferenceEquals(dr["IdPostulacion"], DBNull.Value)) {
					EstadosPostulacion.IdPostulacion = int.Parse(dr["IdPostulacion"].ToString());
				}
			}
			if (dr.Table.Columns.Contains("Estado")) {
				if (!object.ReferenceEquals(dr["Estado"], DBNull.Value)) {
					EstadosPostulacion.Estado = int.Parse(dr["Estado"].ToString());
				}
			}
			if (dr.Table.Columns.Contains("Fecha")) {
				if (!object.ReferenceEquals(dr["Fecha"], DBNull.Value)) {
					EstadosPostulacion.Fecha = DateTime.Parse(dr["Fecha"].ToString());
				}
			}
			return EstadosPostulacion;
		}
	}
}
